package br.ucb.rastreador.negocio;

import br.ucb.rastreador.negocio.impl.BoFactoryImpl;

/**
 * Classe abstrata de um Fabrica de bos
 * 
 * @author Frederico Spohr
 * @version 1.0 
 
 */
public abstract class BoFactory {
	
	private static BoFactory instancia;
	
	/**
	 * @return Uma instacia de um BoFactory.
	 */
	public static BoFactory getFactory(){
		if (instancia == null){
			instancia = new BoFactoryImpl(); 
		}
		return instancia;
	}
	
	/**
	 * @return Uma instancia de um objeto <code>CasoUsoBo</code>.
	 */
	public abstract CasoUsoBo getCasoUsoBo();
	
	/**
	 * 
	 * @return Uma instancia de um objeto <code>CasoTesteBo</code>.
	 */
	public abstract CasoTesteBo getCasoTesteBo();
	
	/**
	 * 
	 * @return Uma instancia de um objeto <code>FluxoBo</code>.
	 */
	public abstract FluxoBo getFluxoBo();
	
	/**
	 * 
	 * @return Uma instancia de um objeto <code>PassoBo</code>.
	 */
	public abstract PassoBo getPassoBo();
	
	/**
	 * 
	 * @return Uma instancia de um objeto <code>ExecucaoCasoTesteBo</code>.
	 */
	public abstract ExecucaoCasoTesteBo getExecucaoCasoTesteBo();
	
	/**
	 * 
	 * @return Uma instancia de um objeto <code>RastroExecucaoBo</code>.
	 */
	public abstract RastroExecucaoBo getRastroExecucaoBo();
	
	/**
	 * 
	 * @return Uma instancia de um objeto <code>PassoCasoTesteBo</code>.
	 */
	public abstract PassoCasoTesteBo getPassoCasoTesteBo();
}
